import jieba    #分词，将一个句子分成很多个词
from matplotlib import pyplot as plt       #绘图，数据可视化，直接生成图片
                #as 将名字简化起为plt
from wordcloud import WordCloud     #词云
from PIL import Image   #图片处理
import numpy as np  #矩阵运算
import sqlite3  #数据库

con = sqlite3.connect('./handleData/movieTop250.db')
cur = con.cursor()
sql = 'select findinfo from movie250'
data = cur.execute(sql)
text = ""
for item in data:
    text += item[0]
cur.close()
con.close()
#【1】 使用jieba对句子进行分词
cut = jieba.cut(text)
#给每个词添加一个空格
string = ' '.join(cut)
# print(len(string))
#--------------------------------------
#【2】 准备一张进行遮罩的图
img = Image.open('./wordCloud/tree.jpg')
#--------------------------------------
#【3】 将图片转换为数组，方便计算
img_array = np.array(img)   
#--------------------------------------
#【4】 使用词云
wc = WordCloud(
    background_color = 'white',
    mask = img_array,
    font_path = 'simsun.ttc'
    #可以去c盘的fonts找对应字体:C\Windows\Fonts
    #不支持中文的话会导致文本不出来
)
#通过文本生成图片
wc.generate_from_text(string)
#--------------------------------------
#【5】 绘制图片
fig = plt.figure(1) #窗口id，后面在添加(4,4)可以创建一个4x4的窗口
plt.imshow(wc)  #imshow=展示
plt.axis('off')     #是否显示坐标轴

# plt.show()  #显示生成的词云图片
#--------------------------------------
#【6】 输出词云图片到文件
plt.savefig('./wordCloud/word.jpg',dpi=1600)     #后面指清晰度
print("success!")
